package com.china08.yxyapi.entity.mg.esbag.test;

import java.util.Date;
import java.util.List;

import javax.persistence.Id;

import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import com.china08.yxyapi.entity.mg.MongoBaseEntityNoId;

/**
 * @author Richard.Wang, 授课报告--随堂测试--题组--每个学生完成题.</br>
 *         每一个学生,本次授课下的一个题组中的每一道题 生成一条数据.
 * @descript
 */
@Document(collection = "yxy.tea.esbag.teaching.test.ques.stu")
public class YxyEsbagTeachingTestQuesStu extends MongoBaseEntityNoId {

    private static final long serialVersionUID = -295018179334903779L;

    /**
     * 授课包id+学生id+ques_group_id+题id
     */
    @Id
    private String id;

    /**
     * 授课包名称
     */
    @Field(value = "pack_name")
    private String packName;
    /**
     * 授课包Id
     */
    @Field(value = "pack_id")
    private String packId;

    @Indexed
    @Field(value = "teacher_id")
    private String teacherId;

    @Field(value = "teacher_nick")
    private String teacherNick;

    @Field(value = "school_id")
    private String schoolId;

    @Field(value = "school_nick")
    private String schoolNick;

    /**
     * 备授课时间
     */
    @Field(value = "pre_date")
    private Date preDate;

    /**
     * 授课时长, 使用秒进行记录.
     */
    @Field(value = "user_time")
    private Long userTime;

    /**
     * 授课班级
     */
    @Field(value = "class_id")
    private String classId;

    /**
     * 授课班级名称
     */
    @Field(value = "class_name")
    private String className;

    @Field(value = "ques_group_id")
    private String quesGroupId;

    @Field(value = "quers_id")
    private String quesId;

    /**
     * 答案:我的 ；选择题回答的答案 <br/>
     * 多选题，使用A，B 存储
     */
    @Field(value = "answer_of_my")
    private String answerOfMy;

    /** 答案:题的 */
    @Field(value = "answer_of_ques")
    private String answerOfQues;

    /**
     * 试题类型，使用题库中的的类型 （0--单选择题，1--多选择题，2--通知类, 3--填空 4--简答）"
     */
    @Field(value = "ques_type")
    private String quesType;

    /** 主观题（填空，问答） 5,4,3,2,1 */
    @Field(value = "mark")
    private Integer mark;

    /**
     * 非通知类作业，上传的图片Url
     */
    @Field(value = "ques_image")
    private List<String> quesImage;

    /** 是否正确 0-错误 , 1-正确 （单选，多选） */
    @Field(value = "passed")
    private Integer passed;

    /**
     * 每道题,做题时长,秒
     */
    @Field(value = "duration")
    private Integer duration = 1;

    @Field(value = "knows_id")
    private List<String> knowsId;

    @Field(value = "knows_name")
    private List<String> knowsName;

    /**
     * 错误知识点
     */
    @Field(value = "wrong_knows_id")
    private List<String> errorKnowId;

    /**
     * 错误知识点名称
     */
    @Field(value = "wrong_know_name")
    private List<String> wrongKnowName;

    /**
     * 正确知识点id
     */
    @Field(value = "exactness_knows_id")
    private List<String> exactnessKnowId;

    /**
     * 正确知识点名称
     */
    @Field(value = "exactness_know_name")
    private List<String> exactnessKnowName;

    @Indexed
    @Field(value = "student_id")
    private String studentId;

    @Field(value = "student_nick")
    private String studentNick;

    private Integer isSync = 0;
    /**
     * 当前题正确率
     */
    @Field(value = "right_rate")
    private Integer rightRate = 0;

    /**
     * 学生的课堂作业是否提交 0 未提交 1已提交
     */
    @Field(value = "status")
    private Integer status;

    /**
     * 教师是否批阅该题 0 未提交 1 已提交
     */
    @Field(value = "is_read_over")
    private Integer isReadOver;

    public Integer getIsReadOver() {
        return isReadOver;
    }

    public void setIsReadOver(Integer isReadOver) {
        this.isReadOver = isReadOver;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getRightRate() {
        return rightRate;
    }

    public void setRightRate(Integer rightRate) {
        this.rightRate = rightRate;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPackName() {
        return packName;
    }

    public void setPackName(String packName) {
        this.packName = packName;
    }

    public String getTeacherId() {
        return teacherId;
    }

    public void setTeacherId(String teacherId) {
        this.teacherId = teacherId;
    }

    public String getTeacherNick() {
        return teacherNick;
    }

    public void setTeacherNick(String teacherNick) {
        this.teacherNick = teacherNick;
    }

    public String getSchoolId() {
        return schoolId;
    }

    public void setSchoolId(String schoolId) {
        this.schoolId = schoolId;
    }

    public String getSchoolNick() {
        return schoolNick;
    }

    public void setSchoolNick(String schoolNick) {
        this.schoolNick = schoolNick;
    }

    public Date getPreDate() {
        return preDate;
    }

    public void setPreDate(Date preDate) {
        this.preDate = preDate;
    }

    public Long getUserTime() {
        return userTime;
    }

    public void setUserTime(Long userTime) {
        this.userTime = userTime;
    }

    public String getClassId() {
        return classId;
    }

    public void setClassId(String classId) {
        this.classId = classId;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public String getQuesGroupId() {
        return quesGroupId;
    }

    public void setQuesGroupId(String quesGroupId) {
        this.quesGroupId = quesGroupId;
    }

    public String getQuesId() {
        return quesId;
    }

    public void setQuesId(String quesId) {
        this.quesId = quesId;
    }

    public String getAnswerOfMy() {
        return answerOfMy;
    }

    public void setAnswerOfMy(String answerOfMy) {
        this.answerOfMy = answerOfMy;
    }

    public String getAnswerOfQues() {
        return answerOfQues;
    }

    public void setAnswerOfQues(String answerOfQues) {
        this.answerOfQues = answerOfQues;
    }

    public Integer getPassed() {
        return passed;
    }

    public void setPassed(Integer passed) {
        this.passed = passed;
    }

    public Integer getDuration() {
        return duration;
    }

    public void setDuration(Integer duration) {
        this.duration = duration;
    }

    public List<String> getKnowsId() {
        return knowsId;
    }

    public void setKnowsId(List<String> knowsId) {
        this.knowsId = knowsId;
    }

    public List<String> getKnowsName() {
        return knowsName;
    }

    public void setKnowsName(List<String> knowsName) {
        this.knowsName = knowsName;
    }

    public String getQuesType() {
        return quesType;
    }

    public void setQuesType(String quesType) {
        this.quesType = quesType;
    }

    public List<String> getQuesImage() {
        return quesImage;
    }

    public void setQuesImage(List<String> quesImage) {
        this.quesImage = quesImage;
    }

    public String getPackId() {
        return packId;
    }

    public void setPackId(String packId) {
        this.packId = packId;
    }

    public String getStudentId() {
        return studentId;
    }

    public void setStudentId(String studentId) {
        this.studentId = studentId;
    }

    public String getStudentNick() {
        return studentNick;
    }

    public void setStudentNick(String studentNick) {
        this.studentNick = studentNick;
    }

    public Integer getMark() {
        return mark;
    }

    public void setMark(Integer mark) {
        this.mark = mark;
    }

    public List<String> getErrorKnowId() {
        return errorKnowId;
    }

    public void setErrorKnowId(List<String> errorKnowId) {
        this.errorKnowId = errorKnowId;
    }

    public List<String> getWrongKnowName() {
        return wrongKnowName;
    }

    public void setWrongKnowName(List<String> wrongKnowName) {
        this.wrongKnowName = wrongKnowName;
    }

    public List<String> getExactnessKnowId() {
        return exactnessKnowId;
    }

    public void setExactnessKnowId(List<String> exactnessKnowId) {
        this.exactnessKnowId = exactnessKnowId;
    }

    public List<String> getExactnessKnowName() {
        return exactnessKnowName;
    }

    public void setExactnessKnowName(List<String> exactnessKnowName) {
        this.exactnessKnowName = exactnessKnowName;
    }

    public Integer getIsSync() {
        return isSync;
    }

    public void setIsSync(Integer isSync) {
        this.isSync = isSync;
    }

}
